#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int main()
{
    cout << "my name is C++" << endl;
    return 0;
}
// int main()
// {
//     pid_t ids[10];
//     for (int i = 1; i <= 10; i++)
//     {
//         pid_t id = fork();
//         if (id == 0)
//         {
//             // child
//             printf("child process created successfully...PID:%d\n", getpid());
//             sleep(3);
//             exit(i); // 将子进程的退出码设置为该子进程PID在数组ids中的下标
//         }
//         // father
//         ids[i] = id;
//     }
//     for (int i = 1; i <= 10; i++)
//     {
//         int status = 0;
//         pid_t ret = waitpid(ids[i], &status, 0);
//         if (ret >= 0)
//         {
//             printf("wiat child success PID : %d\n", ids[i]);
//             if (((status >> 8) & 0xFF) != 0)
//             {
//                 printf("exit code : %d\n", (status >> 8) & 0xFF);
//             }
//             else if (status & 0x7F != 0)
//             {
//                 printf("exit signal : %d\n", status & 0x7f);
//             }
//             else
//             {
//                 printf("child over\n");
//             }
//         }
//     }
//     return 0;
// }

// // int main()
// // {
// //     pid_t ids[10];
// //     for (int i = 1; i <= 10; i++)
// //     {
// //         pid_t id = fork();
// //         ids[i] = id;
// //     }
// //     for (int i = 1; i <= 10; i++)
// //     {
// //         if (ids[i] == 0)
// //         {
// //             // child
// //             printf("child process created successfully...PID:%d\n", getpid());
// //             sleep(3);
// //             exit(i); // 将子进程的退出码设置为该子进程PID在数组ids中的下标
// //         }
// //         // father
// //     }

// //     for (int i = 1; i <= 10; i++)
// //     {
// //         int status = 0;
// //         pid_t ret = waitpid(ids[i], &status, 0);
// //         if (ret >= 0)
// //         {
// //             printf("wiat child success PID : %d\n", ids[i]);
// //             if (((status >> 8) & 0xFF) != 0)
// //             {
// //                 printf("exit code : %d\n", (status >> 8) & 0xFF);
// //             }
// //             else if (status & 0x7F != 0)
// //             {
// //                 printf("exit signal : %d\n", status & 0x7f);
// //             }
// //             else
// //             {
// //                 printf("child over\n");
// //             }
// //         }
// //     }
// //     return 0;
// // }

// // #include <iostream>
// // #include <cstring>
// // #include <vector>
// // #include <stdlib.h>
// // #include <unistd.h>
// // #include <sys/wait.h>
// // #include <sys/types.h>

// // int main()
// // {
// //     int N = 10;
// //     std::cout << "task begin --------- " << std::endl;
// //     std::vector<pid_t> v(N);
// //     while (N)
// //     {
// //         pid_t id = fork();
// //         v[N] = id;
// //         if (id < 0)
// //         {
// //             perror("fork failed!");
// //             exit(0);
// //         }
// //         else if (id == 0)
// //         {
// //             std::cout << "I am child course --- " << std::endl;
// //             printf("I am PID : %d,v[i] = %s\n", getpid(),N);
// //             sleep(1);
// //             // exit(i);
// //         }
// //         else
// //         {
// //             std::cout << "I am father course ------ " << std::endl;
// //             int status = 0;
// //             pid_t rid = waitpid(id, &status, 0);
// //             if (rid >= 0)
// //             {
// //                 std::cout << "father course wait success" << std::endl;
// //                 printf("exitCode : %d,exitSignal : %d\n", (status >> 8) & 0xff, status & 0x7f);
// //                 printf("I am PID : %d,my father PPID : %d,my child PID : %d\n", getpid(), getppid(), id);
// //             }
// //             else
// //                 std::cout << "father course wait faild!" << std::endl;
// //         }
// //         N--;
// //     }
// // }

// // int main()
// // {
// //     std::cout << "task begin --------- " << std::endl;
// //     std::cout << "I am father course ------ " << std::endl;
// //     pid_t id = fork();
// //     if (id < 0)
// //     {
// //         perror("fork failed!");
// //         exit(0);
// //     }
// //     else if (id == 0)
// //     {
// //         std::cout << "I am child course --- " << std::endl;
// //         int count = 10;
// //         while (count)
// //         {
// //             printf("I am PID : %d,my father PPID : %d.count = %d\n", getpid(), getppid(), count--);
// //             sleep(1);
// //         }
// //         exit(0);
// //     }
// //     else
// //     {
// //         std::cout << "I am father course ------ " << std::endl;
// //         int status = 0;
// //         pid_t rid = waitpid(id, &status, 0);
// //         if (rid >= 0)
// //         {
// //             std::cout << "father course wait success" << std::endl;
// //             printf("exitCode : %d,exitSignal : %d\n", (status >> 8) & 0xff, status & 0x7f);
// //             printf("I am PID : %d,my father PPID : %d,my child PID : %d\n", getpid(), getppid(), id);
// //         }
// //         else
// //             std::cout << "father course wait faild!" << std::endl;
// //     }
// //     // else
// //     // {
// //     //     std::cout << "I am father course ------ " << std::endl;
// //     //     int status = 0;
// //     //     pid_t rid = wait(&status);
// //     //     if (rid > 0)
// //     //     {
// //     //         std::cout << "father course wait success" << std::endl;
// //     //         printf("exitCode : %d,exitSignal : %d\n", (status >> 8) & 0xff, status & 0x7f);
// //     //         printf("I am PID : %d,my father PPID : %d,my child PID : %d\n", getpid(), getppid(), id);
// //     //     }
// //     //     else
// //     //         std::cout << "father course wait faild!" << std::endl;
// //     // }
// //     std::cout << "task end --------- " << std::endl;
// //     return 0;
// // }
// // // void test()
// // // {
// // //     printf("hello world");
// // //     sleep(3);
// // //     _exit(1);
// // // }
// // // int main()
// // // {
// // //     // std::cout << "hello world" << std::endl;
// // //     // for (int i = 0; i <= 200; ++i)
// // //     // {
// // //     //     std::cerr << "errno : " << i << "---" << strerror(i) << std::endl;
// // //     // }
// // //     // for (int i = 0; i <= 200; ++i)
// // //     // {
// // //     //     std::cerr << perror(i) << std::endl;
// // //     // }

// // //     // std::cout << "hello world";
// // //     // sleep(1);
// // //     test();
// // //     return 0;
// // // }